// package com.kc.gb.device.common.adapter.dto.basic.slot;
//
// import io.swagger.annotations.ApiModel;
// import io.swagger.annotations.ApiModelProperty;
// import org.springframework.web.context.request.RequestAttributes;
// import org.springframework.web.context.request.RequestContextHolder;
// import org.springframework.web.context.request.ServletRequestAttributes;
//
// import javax.servlet.http.HttpServletRequest;
// import java.io.Serializable;
// import java.util.List;
//
// @ApiModel
// public abstract class BaseSelection extends AbstractParamQuery implements Serializable {
//     @ApiModelProperty("代码类似于，采用包含模糊匹配")
//     private String codeLike;
//     @ApiModelProperty("代码在给定集合中，精准匹配")
//     private List<String> codes;
//     @ApiModelProperty("状态在给定集合中，精准匹配")
//     private List<State> states;
//     private final boolean fromWeb;
//
//     protected abstract String codeFieldName();
//
//     public BaseSelection() {
//         this.fromWeb = this.isRequestFromWeb();
//     }
//
//     private boolean isRequestFromWeb() {
//         return false;
//     }
//
//     public String getCodeLike() {
//         return this.codeLike;
//     }
//
//     public List<String> getCodes() {
//         return this.codes;
//     }
//
//     public List<State> getStates() {
//         return this.states;
//     }
//
//     public boolean isFromWeb() {
//         return this.fromWeb;
//     }
//
//     public void setCodeLike(final String codeLike) {
//         this.codeLike = codeLike;
//     }
//
//     public void setCodes(final List<String> codes) {
//         this.codes = codes;
//     }
//
//     public void setStates(final List<State> states) {
//         this.states = states;
//     }
//
//     public BaseSelection(final String codeLike, final List<String> codes, final List<State> states, final boolean fromWeb) {
//         this.codeLike = codeLike;
//         this.codes = codes;
//         this.states = states;
//         this.fromWeb = fromWeb;
//     }
// }
